package com.xb.loan.usercenter.account.dao;


import com.xb.loan.usercenter.account.dao.bean.CashBill;
import com.xb.loan.util.mybatis.MyBatisRepository;

import java.util.List;
import java.util.Map;

@MyBatisRepository
public interface CashBillDao {

	int insert(CashBill record);
	
	/**
	 * 删除一条cashBill
	 * @param params 为tableId（分表号）、billId
	 * @return
	 * 2015年9月6日 by wenju.song
	 */
	int deleteByPrimaryKey(Map<String, Object> params);

	/**
	 * 查询一条cashBill
	 * @param params 为tableId（分表号）、billId
	 * @return
	 * 2015年9月6日 by wenju.song
	 */
	CashBill selectByPrimaryKey(Map<String, Object> params);
	
	/**
	 * 冲正
	 * @param params 为tableId（分表号）、billId、isFlushes
	 * @return
	 */
	int flushes(Map<String, Object> params);
	
	/**
	 * 查询一条cashBill
	 * @param params tableId（分表号）、foreignId、billType
	 * @return
	 * 2016年6月11日 by wenju.song
	 */
	CashBill queryCashBillByForeignId(Map<String, Object> params);
	
	/**
	 * 根据userId查询账户明细
	 * @param params 为userId、feeType、billType、startDate、endDate、start（开始条数）、end（截止条数）
	 * @return
	 * 2015年9月6日 by wenju.song
	 */
	List<CashBill> queryCashBill(Map<String, Object> params);
	
	/**
	 * 查询符合条件的账户明细总条数
	 * @param params 为userId、feeType、billType、startDate、endDate
	 * @return
	 * 2015年9月6日 by wenju.song
	 */
	int queryCashBillCount(Map<String, Object> params);
	
	/**
	 * 根据userId查询历史账户明细
	 * @param params 为userId、feeType、billType、startDate、endDate、start（开始条数）、end（截止条数）
	 * @return
	 * 2015年9月6日 by wenju.song
	 */
	List<CashBill> queryHisCashBill(Map<String, Object> params);
	
	/**
	 * 查询符合条件的历史账户明细总条数
	 * @param params 为userId、feeType、billType、startDate、endDate
	 * @return
	 * 2015年9月6日 by wenju.song
	 */
	int queryHisCashBillCount(Map<String, Object> params);
	/**
	 * 
	 * 带数据权限的查询现金交易信息
	 * @param params
	 * @return
	 * 2015年11月11日 by zhangyi
	 */
	List<CashBill> queryCashBillAccess(Map<String, Object> params);
	/**
	 * 
	 * 带数据权限的查询现金交易信息
	 * @param params
	 * @return
	 * 2015年11月11日 by zhangyi
	 */
	List<Map<String, Object>> queryCashBillAccessMap(Map<String, Object> params);
	
	/**
	 * 
	 * 带数据权限的查询现金交易信息数量
	 * @param params
	 * @return
	 * 2015年11月11日 by zhangyi
	 */
	int queryCashBillAccessCount(Map<String, Object> params);
	/**
	 * 
	 * 分页查询资金日志
	 * @param params
	 * @return
	 * 2016年7月27日 by ziqiang.zhang
	 */
	List<CashBill> queryCashBills(Map<String, Object> params);
}